<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>4.computed实现_setter</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../../js/vue.js"></script>
  </head>
  <body>
    <!-- 准备好一个容器-->
    <div id="demo">
      姓：<input type="text" v-model="firstName"> <br>
      名：<input type="text" v-model="lastName"> <br>
      全名：<span>{{fullName}}</span><br>
      <button @click="changeFullName">修改全名为：li-si</button>
    </div>

    <script type="text/javascript">
      let vm = new Vue({
        el:'#demo',
        data:{
          firstName:'zhang',
          lastName:'san',
        },
        computed:{
          fullName:{
            // getter何时调用？ —— ①当初次读取fullName时、②计算时所依赖的数据发生变化时
            // getter中的this是谁？ —— vm
            get(){
              return this.firstName.slice(0,1).toUpperCase()  + this.firstName.slice(1) + '-' + this.lastName
            },
            // setter何时调用？ —— fullName被修改的时候
            // setter中的this是谁？ —— vm
            set(value){
              console.log('setter调用了',value)
              let [str1,str2] = value.split('-')
              this.firstName = str1
              this.lastName = str2
            }
          }
        },
        methods:{
          changeFullName(){
            this.fullName = 'li-si'
          }
        }
      })

    </script>
  </body>
</html>